﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.CodeAnalysis; 


namespace Admin.NET.Application.Entity;

/// <summary>
/// 房产实体类
/// </summary>
[SugarTable("base_house", "房产实体类")]
public class HouseEntity : EntityBase
{
    /// <summary>
    /// 房产名称。
    /// </summary>
    [SugarColumn(ColumnDescription = "房产名称", Length = 150, IsNullable = false)]
    public string Name { get; set; }

    /// <summary>
    /// 所在省份。
    /// </summary>
    [SugarColumn(ColumnDescription = "省份", Length = 50, IsNullable = false)]
    public string Province { get; set; }

    /// <summary>
    /// 所在城市。
    /// </summary>
    [SugarColumn(ColumnDescription = "城市", Length = 50, IsNullable = false)]
    public string City { get; set; }

    /// <summary>
    /// 所在区域（如“朝阳区”、“西湖区”）。
    /// </summary>
    [SugarColumn(ColumnDescription = "区域", Length = 50, IsNullable = true)]
    public string District { get; set; }

    /// <summary>
    /// 详细地址。
    /// </summary>
    [SugarColumn(ColumnDescription = "详细地址", Length = 200, IsNullable = true)]
    public string Address { get; set; }

    /// <summary>
    /// 房产类型，例如“住宅”、“商铺”、“写字楼”等。
    /// </summary>
    [SugarColumn(ColumnDescription = "房产类型", Length = 50, IsNullable = true)]
    public string Type { get; set; }


    /// <summary>
    /// 面积（单位：平方米）。
    /// </summary>
    [SugarColumn(ColumnDescription = "面积（平方米）", IsNullable = true)]
    public decimal Area { get; set; }

    /// <summary>
    /// 售价（单位：元）。
    /// </summary>
    [SugarColumn(ColumnDescription = "价格（元）", IsNullable = true)]
    public decimal Price { get; set; }
    /// <summary>
    /// 售价面议
    /// </summary>
    [SugarColumn(ColumnDescription = "售价面议", IsNullable = false)]
    public bool? FacePrice { get; set; }

    /// <summary>
    /// 户型（仅适用于住宅类房产）。
    /// </summary>
    [SugarColumn(ColumnDescription = "户型（如：2室1厅1卫）", Length = 50, IsNullable = true)]
    public string Layout { get; set; }

    /// <summary>
    /// 楼层信息（如：“3/6层”）。
    /// </summary>
    [SugarColumn(ColumnDescription = "楼层", Length = 50, IsNullable = true)]
    public string FloorInfo { get; set; }

    /// <summary>
    /// 建筑年份。
    /// </summary>
    [SugarColumn(ColumnDescription = "建筑年份", IsNullable = true)]
    public int? BuildYear { get; set; }

    /// <summary>
    /// 房产描述信息。
    /// </summary>
    [SugarColumn(ColumnDescription = "房产描述", IsNullable = true,Length =4000)]
    public string Description { get; set; }

    /// <summary>
    /// 是否推荐房产。
    /// </summary>
    [SugarColumn(ColumnDescription = "是否推荐")]
    public bool IsFeatured { get; set; } = false; 
    /// <summary>
    /// 状态 100 出售中 200 已出售 300 未知。
    /// </summary>
    [SugarColumn(ColumnDescription = "状态", IsNullable = true)]
    public int? Status { get; set; }

    /// <summary>
    /// 房产图片地址（URL）。
    /// </summary>
    [SugarColumn(ColumnDescription = "图片地址", Length = 200, IsNullable = true)]
    public string ImageUrls { get; set; }

    /// <summary>
    /// 标签。
    /// </summary>
    [SugarColumn(ColumnDescription = "标签", Length = 100, IsNullable = true)]
    public string TagsJson { get; set; }
     
    /// <summary>
    /// 坐标位置。
    /// </summary>
    [SugarColumn(ColumnDescription = "坐标位置", Length = 50, IsNullable = true)]
    public string Position { get; set; }
    /// <summary>
    /// 联系人联系电话集合
    /// </summary>
    [SugarColumn(ColumnDescription = "联系人联系电话集合", Length = 200, IsNullable = true)]
    public string PhoneNumbers { get; set; }

    /// <summary>
    /// 浏览量
    /// </summary>
    [SugarColumn(ColumnDescription = "浏览量",  IsNullable = true)]
    public int? ViewCount { get; set; }
}
